#if !defined(__APP_SERIAL)
#define __APP_SERIAL
#include <termios.h>
#include "app_device.h"
#include "app_message.h"


//波特率泛型
typedef enum 
{ 
  BR_9600 =9600,
  BR_115200 =115200
}BraudRate;
 
typedef enum
{
    Parity_None =0,
    Parity_Odd = PARENB|PARODD,  //0b00001000  和 0b00000100 求或 
    Parity_Even = PARENB  // 默认第三位是0 
} Parity;

//停止位枚举
typedef enum
{   
    StopBit_1 = 0,
    StopBit_2 = CSTOPB
}StopBit;

//串口设备结构体
typedef struct 
{
    Device super;
    BraudRate br;
    Parity parity;
    StopBit stopBit;

}SerialDevice;

//串口设备初始化
SerialDevice *app_serial_device_Init(char *filename );

/**
 * 设置波特率
 * 
 */
int   app_serial_SetBraudRate(SerialDevice *serialDevice,BraudRate br);

/**
 * 设置奇偶校验
 * 
  */

int app_serial_SetParity(SerialDevice *serialDevice,Parity parity);

/**
 * 设置停止位
 * 
 */
int app_serial_SetStopBit(SerialDevice *serialDevice,StopBit stopBit);


/**
 * 设置连接类型
 */
int app_serial_SetConnectionType(SerialDevice *serialDevice,ConnectType connectionType);

#endif